#include <stdio.h>

/**
 * 位操作
 */
int main() {
	// 无符号数据类型通常使用2字节或16字节
	unsigned aa, bb, cc, dd, ff, gg, hh, ii, jj, nn;

	aa = 0xDFFF;
	bb = 0x2840;
	cc = 0xFF7F;
	dd = 0x0004;

	// 位与
	ff = aa & cc;
	// 位或
	gg = bb | dd;
	// 异或
	hh = aa ^ bb;
	// 取反
	nn = ~dd;
	// 右移1位
	ii = cc >> 1;
	// 左移3位
	jj = dd << 3;

	printf("ff = %u, gg = %u, hh = %u, nn = %u, ii = %u, jj = %u\n\n",
		   ff, gg, hh, nn, ii, jj);
}

